﻿define(function(require,exports,module) {
    var myPub = require('./public');

    $(function() {

        var oPhotoListLi = $('.js_photoList');              // 上传图片数量
        var oClipBox = $('.js_ClipBox');                    // 图片截取范围
        var oClipArea = $('.js_clipArea');                  // 图片区域
        var oClipBtn = $('.js_clipBtn');                    // 截图按钮
        var oFileAddr = $('.js_file');                      // 图片地址
        var oViewBox = $('.js_view');                       // 成功后预览图
        var addPhotoBox = $('.js_addPhotoBox');             // +号图标
        var oCancelBtn = $('.js_cancelBtn');                // 取消选中的图片
        var oDelBtn = $('.js_delBtn');                      // 删除图片
        var oRotateBtn = $('.js_rotateBtn');                // 旋转按钮

        var time_CanvasImg = null;
        var oMyCanvas = $('#myCanvas');
        var ctx = '';
        // 判断页面上canvas是否存在
        if(oMyCanvas.length > 0){
            ctx = oMyCanvas[0].getContext("2d");
        }



        /*var myDoMain;
        var imgUrl = myPub.httpImageUrl;
        //if(myPub.httpImageUrl)  shop.fx-sf.com localhost:8082 m.sfddj.com
        if(window.location.host == 'm.sfddj.com' || window.location.host == '120.76.207.85' || window.location.host == '120.76.44.28') {
            myDoMain = 'https://m.sfddj.com';
        }
        else if(window.location.host == 'shop.fx-sf.com') {
            myDoMain = 'https://shop.fx-sf.com';
        }
        else if(window.location.host == 'www.shhyxypsx.com') {
            myDoMain = 'https://www.shhyxypsx.com';
        }
        else if(window.location.hostname == 'localhost') {
            myDoMain = 'http://localhost:8082';
        }else if(window.location.hostname == 'sit.sfddj.com'){
            myDoMain = ' http://sit.sfddj.com';
        }else if(window.location.hostname == 'itsm.sfddj.com'){
            myDoMain = 'https://itsm.sfddj.com';
        }else if(window.location.hostname == '120.76.47.184'){
            myDoMain = 'http://120.76.47.184';
        }*/

        var uploadUrl = base+'/myInfo/saveAvatar';

        var layerStyle = 'background-color:rgba(0,0,0,0.6); color:#ffffff; border:none; border-radius: 5px; min-width:50%';
        var layerTime = null;

        function AjaxUserImg(obj, src, fn) {
            var _Off = false;
            G_JSON_POST(uploadUrl,{ 'base64Voucher':src },function(data) {
                _Off = true;
                if(data.status == 'success') {
                    // obj.find('img').attr('src', imgUrl + data.message).attr('imgData',data.message);
                    if(fn)fn();
                }
                else {
                    myPub.TipLayer(data.message, layerStyle);
                }

            },function() {
                // 开始时
            },function () {
                if(!_Off) {
                    myPub.TipLayer("网络异常，请稍后再试！", layerStyle);
                }
            })

        }




        var _off = [true,true,true]; 	// 上传开关
        var _M = 10;                     // 图兆数
        var maxKB = _M*1024*1024;		// 图片最大10M


        oPhotoListLi.each(function(i) {
            ClipPhoto(
                oClipArea.eq(i),
                oFileAddr.eq(i),
                oRotateBtn.eq(i),
                oClipBtn.eq(i),
                function(file) {
                    // 开始
                    //判断图片大小
                    file.size > maxKB ? _off[i] = false : _off[i] = true;
                    myPub.TipLayerLong('图片正在识别中......',layerStyle)
                }, function(src) {
                    // 加载完成
                    var beforImg = $('.js_photo-clip-layer');
                    myPub.LayerCloseAll();

                    if(_off[i]) {
                        // 显示裁剪区域
                        oClipBox.show();
                        oClipArea.hide().eq(i).show();

                        // 取消载入的图片
                        oCancelBtn.eq(i).on('click',function(e) {

                            var _cont = "亲！您确定要退出截图吗？";
                            myPub.askLayer(_cont,function() {
                                beforImg.eq(i).find('img').attr('src','');
                                oClipBox.hide();
                                oClipArea.eq(i).hide();
                                e.stopPropagation();
                                myPub.LayerCloseAll();
                            },function() { });
                        });


                    }
                    else {
                        beforImg.eq(i).find('img').attr('src','');
                        myPub.TipLayer('图片大于'+ _M +'M，请重新上传！', layerStyle);
                    }

                },function(event) {
                    // 加载失败
                    myPub.TipLayer(event, layerStyle);
                    // myPub.LayerCloseAll();
                },function(dataURL) {
                    // 剪切完成
                    var beforImg = $('.js_photo-clip-layer');
                    oClipBox.hide();
                    myPub.TipLayerLong("头像上传中……", layerStyle);
                    oMyCanvas.find('img').attr('src', dataURL);

                    clearTimeout(time_CanvasImg);
                    time_CanvasImg = setTimeout(function () {
                        ctx.clearRect(0, 0, 300, 300);
                        ctx.drawImage(oMyCanvas.find('img')[0],0,0, 300, 300);
                        var _URL = oMyCanvas[0].toDataURL("image/jpeg", 1);

                        // oViewBox.find('img').attr('src', _URL);
                        AjaxUserImg(oViewBox, _URL, function () {
                            // 完成时
                            clearTimeout(layerTime);
                            layerTime = setTimeout(function () {
                                oViewBox.find('img').attr('src',  _URL);
                                myPub.TipLayer("头像保存成功!", layerStyle);
                                beforImg.find('img').attr('src','');
                                ctx.clearRect(0, 0, 300, 300);
                            },300)
                        });
                    }, 300);
                }
            );
        });

    });

    function ClipPhoto (obj, file, rotateBtn, ok, start, complet, erro, finish) {
        // obj.photoClip({
        new PhotoClip(obj, {
            size: [250, 250],       	                            // 截取框的宽和高 默认值为[260,260]
            outputSize: [0, 0],     	                            // 输出图像的宽和高 默认值为[0,0]，表示输出图像原始大小
            outputType: "jpg" || "png",                             // 指定输出图片的类型，可选 "jpg" 和 "png" 两种种类型，默认为 "jpg"
            file: file,             	                            // 上传图片的<input type="file">控件的选择器
            // view: view,           	                                // 显示截取后图像的容器的选择器
            rotateBtn: rotateBtn,           	                    // 旋转按钮
            ok: ok,                 	                            // 确认截图按钮的选择器
            loadStart: function(file) {start(file);},               // 开始加载的回调函数
            loadComplete: function(src) {complet(src);},            // 加载完成的回调函数。
            loadError: function(event) {erro(event);},              // 加载失败的回调函数。
            // clipFinish: function(dataURL) {finish(dataURL);}        // 裁剪完成的回调函数。
            done: function(dataURL) {finish(dataURL);}              // 裁剪完成的回调函数。

        });
    }


    function GetFileSize(base64) {
        var str = base64;
        str = str.substring(22);
        var equalIndex = str.indexOf('=');
        if(str.indexOf('=')>0) {
            str = str.substring(0, equalIndex);
        }
        var strLength = str.length;
        var fileLength = parseInt(strLength-(strLength/8)*2);
        return fileLength
    }



});



